import type { DictItemModel, DictModel } from './models';

import { requestClient } from '#/api/request';

/**
 * 分页获取字典集合
 * @param params 分页查询参数
 * @returns 返回查询结果
 */
export async function getDictPagedListApi(params: PageParams) {
  return requestClient.get<PaginationResult<DictModel>>('/dict/list-page', {
    params,
  });
}

/**
 * 创建字典
 * @param data 要创建的字典
 * @returns 返回结果
 */
export async function createDictApi(data: DictModel) {
  return requestClient.post<boolean>('/dict', data);
}

/**
 * 更新字典
 * @param data 要更新的字典
 * @returns 返回结果
 */
export async function updateDictApi(data: DictModel) {
  return requestClient.put<boolean>('/dict', data);
}

/**
 * 删除字典
 * @param id 字典 Id
 * @returns 返回结果
 */
export async function deleteDictApi(id: number) {
  return requestClient.delete<boolean>(`/dict/${id}`);
}

/**
 * 分页获取字典项集合
 * @param params 分页查询参数
 * @returns 返回查询结果
 */
export async function getDictItemPagedListApi(params: PageParams) {
  return requestClient.get<PaginationResult<DictItemModel>>(
    '/dict/item/list-page',
    { params },
  );
}

/**
 * 创建字典项
 * @param data 要创建的字典项
 * @returns 返回结果
 */
export async function createDictItemApi(data: DictItemModel) {
  return requestClient.post<boolean>('/dict/item', data);
}

/**
 * 更新字典项
 * @param data 要更新的字典项
 * @returns 返回结果
 */
export async function updateDictItemApi(data: DictItemModel) {
  return requestClient.put<boolean>('/dict/item', data);
}

/**
 * 删除字典项
 * @param id 字典项 Id
 * @returns 返回结果
 */
export async function deleteDictItemApi(id: number) {
  return requestClient.delete<boolean>(`/dict/item/${id}`);
}
